この項では、Oracleデータベース管理者がシステム・アカウントを使用してOracleデータベースで実行する必要がある処理について説明します。内容は次のとおりです。
Oracle表にアクセスしてキャッシュ・グループを作成するには、Oracleユーザーおよびパスワードを指定する必要があります(「キャッシュされた表のDSN定義」を参照)。すべてのOracleユーザー・アカウントに、Cache Connect to Oracleを使用するCREATE SESSION権限が付与されている必要があります。Cache Connect to Oracleの一部の処理では、Oracleユーザーに追加の権限が必要です。
Cache Connect to Oracleの一部の処理には、追加のOracle権限を持つ個別のユーザーが必要です。これらの追加のキャッシュ管理ユーザー権限は特定のユーザーにのみ付与されるため、Cache Connect to Oracleを使用して、個別のキャッシュ管理ユーザー・アカウントを作成できます(キャッシュ管理ユーザーとしてキャッシュ・エージェントを起動する方法は、「キャッシュ・エージェントの起動および停止」を参照)。
表3.4に、Oracleユーザーおよびキャッシュ管理ユーザーの両方がCache Connect to Oracleの各処理を行うための最小限の権限を示します。キャッシュ管理ユーザーの権限には、データ・ストアにキャッシュされるすべてのOracle表が含まれている必要があります。一方、Oracleユーザーは、ユーザーが作成するキャッシュ・グループで指定される特定のOracle表に対する権限のみが必要です。詳細は、例3.13を参照してください。
キャッシュ・グループの処理
|
Cache Connect to Oracleユーザーに付与される最小限の権限
|
キャッシュ管理ユーザーに付与される最小限の権限
|
---|---|---|
すべての処理 | · Oracleデータベースに対するCREATE SESSION · SELECT TABLE | なし |
CREATE READONLY CACHE GROUP | · Oracleデータベースに対するCREATE SESSION · SELECT TABLE | · Oracleデータベースに対するCREATE SESSION · SELECT TABLE · UNLIMITED TABLESPACE(または表領域での適切な領域割当て制限) · CREATE TABLE1 · CREATE ANY TRIGGER1 |
CREATE SYNCHRONOUS WRITETHROUGH CACHE GROUP | · Oracleデータベースに対するCREATE SESSION · SELECT TABLE · INSERT · UPDATE · DELETE | なし |
CREATE ASYNCHRONOUS WRITETHROUGH CACHE GROUP | · Oracleデータベースに対するCREATE SESSION · SELECT TABLE · INSERT 2 · UPDATE 2 · DELETE 2 | · Oracleデータベースに対するCREATE SESSION · SELECT TABLE · INSERT · UPDATE · DELETE · UNLIMITED TABLESPACE(または表領域での適切な領域割当て制限) · CREATE TABLE1 |
CREATE USERMANAGED CACHE GROUP (後続行の異なる処理を参照) | · Oracleデータベースに対するCREATE SESSION · SELECT TABLE | なし |
CREATE USERMANAGED CACHE GROUP (PROPAGATEを指定) | · Oracleデータベースに対するCREATE SESSION · SELECT TABLE · INSERT · UPDATE · DELETE | なし |
CREATE USERMANAGED CACHE GROUP (AUTOREFRESH INCREMENTALを指定) | · Oracleデータベースに対するCREATE SESSION · SELECT TABLE | · Oracleデータベースに対するCREATE SESSION · SELECT TABLE · UNLIMITED TABLESPACE(または表領域での適切な領域割当て制限) · CREATE TABLE1 · CREATE ANY TRIGGER1 |
LOAD CACHE GROUP | · Oracleデータベースに対するCREATE SESSION · SELECT TABLE | · Oracleデータベースに対するCREATE SESSION · SELECT TABLE |
REFRESH CACHE GROUP | · Oracleデータベースに対するCREATE SESSION · SELECT TABLE | · Oracleデータベースに対するCREATE SESSION · SELECT TABLE |
FLUSH CACHE GROUP | · Oracleに対するCREATE SESSION · SELECT TABLE · INSERT TABLE · UPDATE TABLE |
2人のユーザーSamおよびJohnに権限を付与する必要があります。各ユーザーは、CREATE READONLY CACHE GROUP文を実行して、個別の読取り専用キャッシュ・グループを作成できます。SamはOracle表のTTUSER.TABLEAをキャッシュするキャッシュ・グループを作成し、Johnは別のキャッシュ・グループにOracleのTTUSER.TABLEBをキャッシュします。
SamおよびJohnにCREATE READONLY CACHE GROUPに対する十分なOracle権限を付与するには、Oracleユーザー・アカウントを2つ、拡張権限を持つキャッシュ管理ユーザーを1つ作成する必要があります。ここでは、キャッシュ管理ユーザーの名前はUser2です。
Oracleにアカウントを作成します。
次に、各ユーザーに次の権限を割り当てます。
キャッシュ管理ユーザー用に個別の表領域を作成することを強くお薦めします。この表領域は、キャッシュ管理ユーザーのデフォルトの表領域として使用されます。表領域には、各Oracle表の自動リフレッシュ・トリガー、各Oracle表の変更ログ表、およびTimesTenが各キャッシュ管理ユーザーに対して必要とするその他のオブジェクトが含まれます。詳細は、「READONLY、AUTOREFRESHおよびAWTキャッシュ・グループのOracleオブジェクトの管理」を参照してください。個別の表領域を指定しない場合、これらのオブジェクトはOracleのシステム表領域に配置されます。
Oracleでのキャッシュ管理ユーザー作成時に表領域を指定できます。また、OracleのALTER USER文を使用してユーザーを作成した後も表領域を指定できます。
キャッシュされた各Oracle表の変更ログ表は、キャッシュ管理ユーザーの表領域に存在します。Oracle表の各更新では、1行(1つの変更ログ・レコード)がそのOracle表の変更ログ表に挿入されます。変更ログ・レコードのサイズ(バイト)は次のようになります。
変更ログ表のレコード数は、Oracle表での更新率、およびTimesTenでの自動リフレッシュ時間隔によって異なります。すべてのキャッシュで自動リフレッシュされた変更ログ・レコードは、20秒ごとにTimesTenによって削除されます。
キャッシュ管理ユーザーの表領域が一杯になった場合、自動リフレッシュ・トリガーは既存の変更ログ・レコードを削除して、新しい変更ログ・レコード用の領域を確保します。これによって、一部のTimesTenデータ・ストアのいくつかの表に対して完全自動リフレッシュを行うことができます。ただし、パフォーマンスは低下します。
表領域が一杯になった場合は、次の状態を確認します。